package com.caiden_micheal.permission.service;

import com.caiden_micheal.base.domain.AjxResult;
import com.caiden_micheal.base.dto.PageDTO;
import com.caiden_micheal.permission.domain.Permission;
import com.caiden_micheal.permission.dto.FindPermissionSelectData;
import com.caiden_micheal.permission.vo.PermissionQueryVO;

public interface PermissionService {

    PageDTO findPermissionsByCondition(PermissionQueryVO permissionQueryVO);

    PageDTO findPermissionsByConditionMenu(PermissionQueryVO permissionQueryVO);

    PageDTO findPermissionsByConditionExcludePositionId(PermissionQueryVO permissionQueryVO);

    PageDTO findPermissionsByConditionExcludeOrgId(PermissionQueryVO permissionQueryVO);

    PageDTO permissionQueryExcludeUserId(PermissionQueryVO permissionQueryVO);

    AjxResult addPermission(Permission permission);
    AjxResult addPermissionWithMenuId(Permission permission);

    AjxResult editPermission(Permission permission);

    Permission findById(Long permissionId);

    AjxResult removePermission(Long permissionId);

    AjxResult findPermissionSelectData(FindPermissionSelectData findPermissionSelectData);
}
